*** /source/atari/gnu/dist/gkernel/README	Fri Oct 27 01:41:58 1989
--- README	Wed Dec 27 13:46:09 1989
***************
*** 111,116 ****
--- 111,257 ----
     that comes with degas. Also, on compuserve there are many many pd degas
     fonts.
  
+ ++ cleaned up kernel/stwini.c. It is much more intutive now, compared to
+    the holy mess it had become. It now correctly supports supra extended
+    partitions. It also allows all combinations of controller/drive/partition
+    to be used. NOTE: there are new configurable parameters (please
+    carefully read the comments at the top of stwini.c).
+ 
+ ++ new experimental autosensing floppy driver. carefully read the comments
+    at the top of kernel/stfloppy.c and utils/mkfs.c. This new version
+    of mkfs must be used. The old version will not work!. Also, when
+    compiling, WANTNEWFLOP *must* be defined everywhere (especially kernel/fs)
+ 
+ ++ added ioctls to stwini for DKGETP/OPEN/CLOSE/PART. corresponding
+    changes in h/stboots and h/sgtty.h name change: FDGETP->DKGETP. New
+    utilities dkinfo/dkopen/dkclose. fixed up mkfs to use ioctl(DKGETP) to
+    sense media descriptor. mkinfo -a (autosensing) now seems to work fine.
+ 
+ ++ (11/?? - 12/26/89) lots of changes (thanks very much to Kai-Uwe for
+     his excellent contributions):
+ 
+     kernel/
+ 	new/working versions of stwini and stfloppy. both are autosensing
+ 	drivers, stwini supports removable media drives. all block device
+ 	drivers now understand the concept of firstopen/lastclose (we
+ 	fake it in the ram disk). soon rs232 and tty will too. this requires
+ 	supporting changes in fs and utils too. with these new drivers
+ 	the mkfs supplied in utils *MUST* be used. file systems made with
+ 	the old mkfs will still work, but this compatibility will eventually
+ 	go away (two biggest problems with the old mkfs are that it zeros
+ 	the boot blok, and it requires the user to specify the filesystem size
+ 	desired instead of just sensing it from the media descriptor. the
+ 	zero'ing of boot blocks is especially a problem with floppies, as
+ 	it becomes impossible to auto-sense them, the driver current defaults
+ 	to single sided 9 sectors/track). the new mkfs ofcourse still accepts
+ 	all the old mkfs's options. a few new disk utilities are also provided.
+ 	please read the comments at the top of stwini.c and stfloppy.c
+ 	carefully. thanks to andy michael and frans for their feed back on
+ 	the new naming scheme for wini devices.
+ 
+     fs/
+ 	fast file system: copies directly to user buffers. this gives a
+ 	tremendous gain in speed.
+ 	also, WRITE_IMMED blocks are now kept around in a list, and 
+ 	asynchrounously flushed after the reply is sent. this also helps
+ 	the speed in some cases.
+ 
+ 	brand new rdwrt.c, map.c: these files replace read.c and write.c.
+ 	(mv read.c and write.c to some other dir).
+ 
+ 	better elevator flushing. elevator flushes for sync() too.
+ 
+ 	complete support for first open/ last close. (the upcoming V1.5 will
+ 	only have partial support).
+ 
+ 	bug fixes (present in all ACK versions of fs too): here is
+ 	kai-uwe's readme:
+ some time ago i discovered a bug in the mm/fs interface. Namely you must have
+ read rights to execute a file. I found this is a conceptual problem in the
+ interface between mm and fs. mm does an open(name,0) and an fstat(fd) call
+ to check the permissions for the file. However, the open call can only succeed
+ if you have read rights on the file, because mm temporarily switches to the
+ users working directory and the users effective uid/gid.
+ 
+ The problem is fixed by doing a dirty trick similar to that used by mm to tell
+ fs the address of the data in a read/write call : pass the access bits desired
+ by mm directly in the open call (i use bits 12-15 for that). do_open() now
+ recognizes this and take those bits instead of calculating its own set of bits
+ from the given access mode. The read code has been modified to allow read on
+ a file with only the x-bit set. The user can't set this bit in the file
+ descriptor, so this should not do any harm.
+ 
+ Another problem i found was with mounted file systems : the file system gets
+ bus errors when crossing from the mounted file system to the mounted-on file
+ system and you don't have the permission to search the mount-on directory.
+ I found no obvious solution to this, but the bus error can be avoided by
+ an extension in a while condition. Ideas for soultion, anyone ? What happens
+ on real UNIX in this case ?
+ 
+ Also super.c had spurious adjustments to `bufs_in_use'. this caused me 2
+ sleepless nights!
+ 
+ sttools/
+ 	- build.c, bootblok.*, minix.c: build no longer stores the BSS
+ 	image in minix.img. this reduces the size of minix.img on disk
+ 	tremendously. bootblok and minix.c adjusted to create the 
+ 	respective BSS's and zero them when loading the image in memory.
+ 
+ 	- gcc-as is not assembling bootblok.s correctly (thanks andy). i
+ 	have'nt quite figured out why. in the mean while please make
+ 	`bootblok' from bootblok.ack  with ACK C. (i have provided
+ 	a bootblok for your convenience). (please remember this is
+ 	a patched bootblok.ack, not same as the origionally distributed
+ 	bootblok.ack).
+ 
+ tos/
+ 	patched minix.c/fakeuinix.c. minix.c can be compiled with either
+ 	tos-gcc or Alcyon C. a compiled minix.prg is supplied for your
+ 	convenience.
+ 
+ utils/
+ 	mkfs (as mentioned above)	*MUST* use this one
+ 	dk*	new disk utilities.
+ 	(tos command still to come, i have'nt had a chance to test the
+ 	new coding with tos-hd partitions as yet)
+ h/
+ 	please carefully look over const.h again.
+ 	supporting changes
+ include/lib
+ 	merged in new ansi headers posted by ast (std.h is gone!)
+ 	stdio routines in lib completely replaced (these are smaller
+ 	faster and more correct (especially when a file is opened for
+ 	"w+" or "r+". they also buffer much more efficiently than
+ 	either earl chew or norbert schelenkars versions of ansi C stdio)
+ 	some minor bug fixes, and adjustments for new headers.
+ 	before you mege in the new sources, in lib/
+ 	delete the following files (you may not have all of them)
+     _fopen.c    fprintf.c    stdio.h
+     _slot.c        fputc.c        printf.c    stdiolib.h
+     atexit.c    fputs.c        puts.c
+     bitset.h    fread.c        putw.c
+     exit.c        freopen.c    ungetc.c
+     _allocbu.c    fclose.c    fseek.c        rewind.c    vfprintf.c
+     _eprintf.c    fdopen.c    ftell.c        scanf.c        vfscanf.c
+     _fakfls.c    fflush.c    fwrite.c    setbuf.c    vprintf.c
+     _filbuf.c    fgetc.c        fwrite.up    setvbuf.c    vscanf.c
+     _file.c        fgets.c        gets.c        sprintf.c    vsprintf.c
+     _flsbuf.c    fopen.c        getw.c        stdio.c        vsscanf.c
+ 
+     these are replaced by:
+     atol.c        fopen.c        ftell.c        main.c        sprintf.c
+     doprnt.c    fprintf.c    fungetc.c    putl.c        sscanf.c
+     fclose.c    fputc.c        fwrite.c    putw.c        strdup.c
+     fdopen.c    fputs.c        getbuf.c    random.c    strtol.c
+     fflush.c    fread.c        getl.c        rewind.c    strtoul.c
+     fgetc.c        fscanf.c    gets.c        scanf.c
+     fgets.c        fseek.c        getw.c        setbuf.c
+     filbuf.c    fsetpos.c    lib.h        setvbuf.c
+ 
+ 	remove _fakls* and crt0* from $(GCCLIB)/ (normally /usr/local/lib)
+ 
+     Compile the library again before building a new kernel.
+ 	
  ------------------------------------------------------------------------------
  
  	- check config in h/const.h (also look over h/com.h
